import axios from 'axios'
import {Toast} from 'vant'

const instance = axios.create({
	baseUrl:'/',
	timeout:5000,
	headers:{
		'get':{
			'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'
		},
		'post':{
			'Content-Type': 'application/json;charset=utf-8'
		}
	}
})

//添加一个请求拦截器
instance.interceptors.request.use((config) => {
	return config;
},(error)=>{
	Toast('服务器异常，请联系管理员');
	return Promise.resolve(error);
})

//添加一个响应拦截器
instance.interceptors.response.use((config) => {
	const status = config.status;
	if(status > 200 && status < 505){
		let msg = showStatus(status);
		Toast(msg);
	}
	return config;
},(error)=>{
	let msg = showStatus(error.response.status);
	Toast(msg);
	return Promise.resolve(error);
})

//对响应码值的提示处理
const showStatus = (status) => {
	let message = ''
	switch (status) {
		case 400:
			message = '请求错误(400)'
			break
		case 401:
			//$store.dispatch("logout");
			message = '未授权，请重新登录(401)'
			break
		case 403:
			message = '拒绝访问(403)'
			break
		case 404:
			message = '请求出错(404)'
			break
		case 408:
			message = '请求超时(408)'
			break
		case 500:
			message = '服务器错误(500)'
			break
		case 501:
			message = '服务未实现(501)'
			break
		case 502:
			message = '网络错误(502)'
			break
		case 503:
			message = '服务不可用(503)'
			break
		case 504:
			message = '网络超时(504)'
			break
		case 505:
			message = 'HTTP版本不受支持(505)'
			break
		default:
			message = `连接出错(${status})!`
	}
	return `${message}，请检查网络或联系管理员！`
}

export default instance